package hibernate.method.interfaces;

import hibernate.model.Game;
import hibernate.model.GamesLike;
import hibernate.model.GamesRate;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

public interface GameMethodsInterface {

	/* dodanie gry */
	public void addGame(SessionFactory sessionFactory, Session session,
			String name, String describe, int min_users,
			int max_users);
	
	/* przeniesienie gry do usuni�tych */
	public void delete(SessionFactory sessionFactory, Session session, Game g);


	/* zmienia opis gry */
	public void edit_describe(SessionFactory sessionFactory, Session session,
			Game g, String describe);

	/* zmienia minimaln� ilosc uczestnik�w */
	public void edit_min_users(SessionFactory sessionFactory, Session session,
			Game g, int min_users);

	/* zmienia maksymaln� ilosc uczestnik�w */
	public void edit_max_users(SessionFactory sessionFactory, Session session,
			Game g, int max_users);


	
	public Game idToGame (SessionFactory sessionFactory, Session session, int game_id);
	
	public Integer nameToId (SessionFactory sessionFactory, Session session, String gameName);
	
	public List<Game> listAllGames (SessionFactory sessionFactory, Session session);
	
	public List<GamesRate> listAllGamesRates (SessionFactory sessionFactory, Session session);
	
	public void like (SessionFactory sessionFactory, Session session, int user_id, int game_id);
	
	public void dislike (SessionFactory sessionFactory, Session session, GamesLike gl);
	
	public List <GamesLike> checkIfLike (SessionFactory sessionFactory, Session session, int user_id, int game_id);
	
	public List <GamesLike> listAllLiked (SessionFactory sessionFactory, Session session, int user_id);
	
	public GamesLike idToGamesLike (SessionFactory sessionFactory, Session session, int liked_id);
	
	
}
